﻿using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace WCFVeterinaria
{
    // NOTA: puede usar el comando "Rename" del menú "Refactorizar" para cambiar el nombre de clase "Service1" en el código y en el archivo de configuración a la vez.
    public class ServiceVeterinaria : IServiceVeterinaria
    {
        #region usuarios
        public Usuarios consultarUsuario(string id, string password)
        {
            ClaseVeterinaria.DSTVeterinaria.UsuariosDataTable miTabla = ClaseVeterinaria.UsuariosCAD.consultarUsuario(id, password);
            if (miTabla.Rows.Count > 0)
            {
                ClaseVeterinaria.DSTVeterinaria.UsuariosRow miRegistro =
                (ClaseVeterinaria.DSTVeterinaria.UsuariosRow)miTabla.Rows[0];
                Usuarios usuario = new Usuarios();
                usuario.IdUsuario = miRegistro.idUsuario;
                usuario.Password = miRegistro.password;
                usuario.Nombre = miRegistro.nombre;
                usuario.Apellido = miRegistro.apellido;
                usuario.Identificacion = miRegistro.identificacion;
                return usuario;

            }
            return null;
        }

        public void agregarUsuario(string id, string password, string nombre, string apellido, string identificacion)
        {
            ClaseVeterinaria.UsuariosCAD.agregarUsuario(id, password, nombre, apellido, identificacion);
        }

        public void actualizarUsuario(string id2,string id, string password, string nombre, string apellido, string identificacion)
        {
            ClaseVeterinaria.UsuariosCAD.actualizarUsuario(id2,id, password, nombre, apellido, identificacion);
        }

        public void eliminarUsuario(string id)
        {
            ClaseVeterinaria.UsuariosCAD.eliminarUsuario(id);
        }

        public DataTable listarUsuarios()
        {
            return ClaseVeterinaria.UsuariosCAD.listarUsuarios();
        }
        #endregion

        #region medicos
        public Medicos consultarMedico(int nroColegiado)
        {
            ClaseVeterinaria.DSTVeterinaria.MedicosDataTable miTabla = ClaseVeterinaria.MedicosCAD.consultarMedico(nroColegiado);
            if (miTabla.Rows.Count > 0)
            {
                ClaseVeterinaria.DSTVeterinaria.MedicosRow miRegistro =
                (ClaseVeterinaria.DSTVeterinaria.MedicosRow)miTabla.Rows[0];
                Medicos medico = new Medicos();
                medico.NroColegiado = miRegistro.nro_colegiado;
                medico.Nombre = miRegistro.nombre;
                medico.Apellidos = miRegistro.apellidos;
                medico.Direccion = miRegistro.direccion;
                medico.TelefonoCelular = miRegistro.telefono_celular;
                medico.Email = miRegistro.email;
                return medico;

            }
            return null;
        }

        public void agregarMedico(int nroColegiado, string nombre, string apellidos, string telefonoCelular, string email, string direccion)
        {
            ClaseVeterinaria.MedicosCAD.agregarMedico(nroColegiado, nombre, apellidos, telefonoCelular, email, direccion);
        }

        public void actualizarMedico(int nroColegiado, string nombre, string apellidos, string telefonoCelular, string email, string direccion)
        {
            ClaseVeterinaria.MedicosCAD.actualizarMedico(nroColegiado, nombre, apellidos, telefonoCelular, email, direccion);
        }

        public void eliminarMedico(int nroColegiado)
        {
            ClaseVeterinaria.MedicosCAD.eliminarMedico(nroColegiado);
        }

        public DataTable listarMedicos()
        {
            return ClaseVeterinaria.MedicosCAD.listarMedicos();
        }
        #endregion

        #region clientes
        public Clientes consultarCliente(string identificacionID)
        {
            ClaseVeterinaria.DSTVeterinaria.ClientesDataTable miTabla = ClaseVeterinaria.ClientesCAD.consultarCliente(identificacionID);
            if (miTabla.Rows.Count > 0)
            {
                ClaseVeterinaria.DSTVeterinaria.ClientesRow miRegistro =
                (ClaseVeterinaria.DSTVeterinaria.ClientesRow)miTabla.Rows[0];
                Clientes cliente = new Clientes();
                cliente.IdentificacionID = miRegistro.identificacionID;
                cliente.NombreORazonSocial = miRegistro.nombre_o_razon_social;
                cliente.Apellidos = miRegistro.apellidos;
                cliente.Direccion = miRegistro.direccion;
                cliente.TelefonoHabitacion = miRegistro.telefono_habitacion;
                cliente.TelefonoCelular = miRegistro.telefono_celular;
                cliente.Email = miRegistro.email;
                return cliente;

            }
            return null;
        }

        public DataTable listarClientes()
        {
            return ClaseVeterinaria.ClientesCAD.listarClientes();
        }

        public void agregarCliente(string identificacionID, string tipoIdentificacion, string nombre, string apellidos, string telefonoHabitacion, string telefonoCelular, string email, string direccion)
        {
            ClaseVeterinaria.ClientesCAD.agregarCliente(identificacionID, tipoIdentificacion, nombre, apellidos, telefonoHabitacion, telefonoCelular, email, direccion);
        }

        public void actualizarCliente(string identificacionID, string tipoIdentificacion, string nombre, string apellidos, string telefonoHabitacion, string telefonoCelular, string email, string direccion)
        {
            ClaseVeterinaria.ClientesCAD.actualizarCliente(identificacionID, tipoIdentificacion, nombre, apellidos, telefonoHabitacion, telefonoCelular, email, direccion);
        }

        public void eliminarCliente(string identificacionID)
        {
            ClaseVeterinaria.ClientesCAD.eliminarCliente(identificacionID);
        }
        #endregion


        #region clasesAnimal
        public ClaseAnimal consultarClaseAnimal(int ClasificacionID)
        {
            ClaseVeterinaria.DSTVeterinaria.ClaseAnimalDataTable miTabla = ClaseVeterinaria.ClaseAnimalCAD.consultarClaseAnimal(ClasificacionID);
            if (miTabla.Rows.Count > 0)
            {
                ClaseVeterinaria.DSTVeterinaria.ClaseAnimalRow miRegistro =
                (ClaseVeterinaria.DSTVeterinaria.ClaseAnimalRow)miTabla.Rows[0];
                ClaseAnimal clase = new ClaseAnimal();
                clase.ClasificacionID = miRegistro.clasificacionID;
                clase.Nombre = miRegistro.nombre;
                clase.Caracteristica = miRegistro.caracteristica;
                return clase;

            }
            return null;
        }

        public DataTable listarClasesAnimal()
        {
            return ClaseVeterinaria.ClaseAnimalCAD.listarClasesAnimal();
        }

        public void agregarClaseAnimal(string nombre, string caracteristica)
        {
            ClaseVeterinaria.ClaseAnimalCAD.agregarClaseAnimal(nombre, caracteristica);
        }

        public void actualizarClaseAnimal(int ClasificacionID, string nombre, string caracteristica)
        {
            ClaseVeterinaria.ClaseAnimalCAD.actualizarClaseAnimal(ClasificacionID, nombre, caracteristica);
        }

        public void eliminarClaseAnimal(int ClasificacionID)
        {
            ClaseVeterinaria.ClaseAnimalCAD.eliminarClaseAnimal(ClasificacionID);
        }
        #endregion


        #region animal
        public Animal consultaAnimal(int animalID)
        {
            ClaseVeterinaria.DSTVeterinaria.AnimalDataTable miTabla = ClaseVeterinaria.AnimalCAD.consultarAnimal(animalID);
            if (miTabla.Rows.Count > 0)
            {
                ClaseVeterinaria.DSTVeterinaria.AnimalRow miRegistro =
                (ClaseVeterinaria.DSTVeterinaria.AnimalRow)miTabla.Rows[0];
                Animal animal = new Animal();
                animal.AnimalID = miRegistro.animalID;
                animal.Nombre = miRegistro.nombre;
                animal.Color = miRegistro.color;
                animal.FechaDeNacimiento = miRegistro.fecha_nacimiento;
                animal.ClasificacionID = miRegistro.clasificacionID;
                animal.IdentificacionID = miRegistro.identificacionID;
                return animal;

            }
            return null;
        }

        public DataTable listarAnimal()
        {
            return ClaseVeterinaria.AnimalCAD.listarAnimal();
        }

        public void agregarAnimal(string nombre, string color, DateTime fechaNacimiento, int clasificacionID, string identificacionID)
        {
            ClaseVeterinaria.AnimalCAD.agregarAnimal(nombre, color, fechaNacimiento, clasificacionID, identificacionID);
        }

        public void actualizarAnimal(int animalID, string nombre, string color, DateTime fechaNacimiento, int clasificacionID, string identificacionID)
        {
            ClaseVeterinaria.AnimalCAD.actualizarAnimal(animalID, nombre, color, fechaNacimiento, clasificacionID, identificacionID);
        }

        public void eliminarAnimal(int animalID)
        {
            ClaseVeterinaria.AnimalCAD.eliminarAnimal(animalID);
        }
        #endregion

        #region consultamedica
        public ConsultaMedica consultarConsultaMedica(int consultaID)
        {
            ClaseVeterinaria.DSTVeterinaria.ConsultaMedicaDataTable miTabla = ClaseVeterinaria.ConsultaMedicaCAD.consultarConsultaMedica(consultaID);
            if (miTabla.Rows.Count > 0)
            {
                ClaseVeterinaria.DSTVeterinaria.ConsultaMedicaRow miRegistro =
                (ClaseVeterinaria.DSTVeterinaria.ConsultaMedicaRow)miTabla.Rows[0];
                ConsultaMedica consulta = new ConsultaMedica();
                consulta.ConsultaID = miRegistro.consultaID;
                consulta.AnimalID = miRegistro.animalID;
                consulta.NroColegiado = miRegistro.nro_colegiado;
                consulta.Detalle = miRegistro.detalle;
                consulta.FechaHora = miRegistro.fechaHora;
                return consulta;

            }
            return null;
        }

        public DataTable listarConsultaMedica()
        {
            return ClaseVeterinaria.ConsultaMedicaCAD.listarConsultaMedica();
        }

        public void agregarConsultaMedica(int animalID, int nroColegiado, DateTime fechaHora, string detalle)
        {
            ClaseVeterinaria.ConsultaMedicaCAD.agregarConsultaMedica(animalID, nroColegiado,fechaHora,detalle);
        }

        public void actualizarConsultaMedica(int consultaID, int animalID,int nroColegiado, DateTime fechaHora, string detalle)
        {
            ClaseVeterinaria.ConsultaMedicaCAD.actualizarConsultaMedica(consultaID,animalID, nroColegiado, fechaHora,detalle);
        }

        public void eliminarConsultaMedica(int consultaID)
        {
            ClaseVeterinaria.ConsultaMedicaCAD.eliminarConsultaMedica(consultaID);
        }
        #endregion
       
    }
}
